using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Consultas_RSeguimientoTickets : System.Web.UI.Page
{
    public DataTable result;
    private int[] widestData;
    private void InitArrayWithZeros()
    {
        for (int i = 0; i < widestData.Length; i++) widestData[i] = 0;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        widestData = new int[GridView1.Columns.Count];
        InitArrayWithZeros();
        sqldsSeguimientoTickets.SelectCommand = Session["SelectCommand"].ToString();
        sqldsSeguimientoTickets.DataBind();
        sqldsSeguimientoTickets.Selecting += sqldsSeguimientoTickets_Selecting;

        if (GridView1.Rows.Count == 0)
        {
            lblMensaje.Visible = true;
            this.lblMensaje.Text = "No se encontraron resultados.";
            pnlExportar.Visible = false;
        }




    }
 

    protected void sqldsSeguimientoTickets_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {
        e.Command.CommandTimeout = 180;
    }

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        DataView dv = (DataView)sqldsSeguimientoTickets.Select(DataSourceSelectArguments.Empty);
        result = dv.ToTable();
        ExcelExporter excelExporter = new ExcelExporter(this);

        string fechaInicio = null;

        if (Session["Fecha"] != null)
            fechaInicio = Session["Fecha"].ToString();



        if (fechaInicio != null)
        {
            excelExporter.AddModifier("fecha", this.ConvertirFechaCorta);
            excelExporter.AddModifier("horaemision", this.ObtenerFormatoHoraLargo);
            excelExporter.AddModifier("horallamado", this.ObtenerFormatoHoraLargo);
            excelExporter.AddModifier("horainicioatencion", this.ObtenerFormatoHoraLargo);
            excelExporter.AddModifier("horafinatencion", this.ObtenerFormatoHoraLargo);
            excelExporter.SetVisible("id_tipo_ticket", false);
            excelExporter.SetVisible("id_oficina", false);
            excelExporter.SetVisible("oficina", false);

            excelExporter.Export(result, "Seguimiento_Tickets_" + fechaInicio);
        }
    }
    public object ConvertirFechaCorta(object value)
    {
        DateTime fecha;
        if (value != null && DateTime.TryParse(value.ToString(), out fecha))
            return fecha.ToShortDateString();
        return value;
    }
    public object ObtenerFormatoHoraLargo(object value)
    {
        DateTime fecha;
        if (value != null && DateTime.TryParse(value.ToString(), out fecha))
            return String.Format("{0:HH:mm:ss}",fecha);
        return value;
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        System.Data.DataRowView drv;
        drv = (System.Data.DataRowView)e.Row.DataItem;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (drv != null)
            {
                for (int i = 0; i < widestData.Length; i++)
                {
                    string currentValue = drv[i].ToString();

                    if (currentValue.Length > widestData[i])
                    {
                        widestData[i] = currentValue.Length;
                        GridView1.Columns[i].ItemStyle.Width = widestData[i];
                        GridView1.Columns[i].ItemStyle.Wrap = false;
                    }
                }
            }
        }
    }
}
